package com.csun.cmny.provider.model.dto;

import com.csun.cmny.provider.validator.ExpenseTypeModelCodeAddValidator;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

@Data
public class ExpenseTypeModelCodeDto implements Serializable {

    /*
    * id
    * */
    private Long id;

    /**
     * 消费类别id
     */
    @NotNull(message = "{ExpenseType.expenseTypeId.null}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    private Long expenseTypeId;

    /**
     * 缴费模式码 :1- 入院收费 2-周期收费 3-出院收费
     */
    @NotNull(message = "{ExpenseType.modelCode.null}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    @Range(min = 1, max = 3, message = "{ExpenseType.modelCode.range}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    private Integer modelCode;

    /**
     * 是否退院退费 0.否 1.是
     */
    @NotNull(message = "{ExpenseType.isOutReturn.null}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    @Range(min = 0, max = 1, message = "{ExpenseType.isOutReturn.range}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    private Integer isOutReturn;

    /**
     * 是否请假退费 0.否 1.是
     */
    @NotNull(message = "{ExpenseType.isLeaveReturn.null}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    @Range(min = 0, max = 1, message = "{ExpenseType.isLeaveReturn.range}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    private Integer isLeaveReturn;

    /**
     * 是否可以调整 0.否 1.是
     */
    @NotNull(message = "{ExpenseType.isAdjust.null}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    @Range(min = 0, max = 1, message = "{ExpenseType.isAdjust.range}",
            groups = {ExpenseTypeModelCodeAddValidator.class})
    private Integer isAdjust;

    /*
    * 机构id
    * */
    private Long groupId;
}
